Hand held pointing device with roll compensation

ABSTRACT

A pointing device includes accelerometers and rotational sensors that are coupled to a processor. The processor samples the accelerometers and rotational sensors to detect gravity and pointing device motion and uses algebraic algorithms to calculate roll compensated cursor control signals. The processor transmits the cursor control signals to a receiver that is coupled to an electronic device that moves the cursor on the visual display.

CROSS REFERENCE TO RELATED APPLICATION

This patent application is a continuation of U.S. patent applicationSer. No. 13/732,748, “Hand Held Pointing Device With Roll Compensation,”filed Jan. 2, 2013, which is a continuation of U.S. patent applicationSer. No. 13/112,742, “Hand Held Pointing Device With Roll Compensation,”filed May 20, 2011, which is a continuation of U.S. patent applicationSer. No. 12/147,811, “Hand Held Pointing Device With Roll Compensation,”filed Jun. 27, 2008. U.S. patent application Ser. Nos. 13/732,748,13/112,742 and 12/147,811 are hereby incorporated by reference in theirentirety.

BACKGROUND

Pointing devices allow users to move a curser or other indicators on acomputer display in response to the user's movement. A normal computermouse pointing device converts horizontal movement over a planar surfacein two dimensions into corresponding curser movement on a computerscreen. The mouse includes a sensor that is typically a laser or rollerball sensor that detects movement over a surface.

Other types of pointing devices have been designed which operate inthree dimensional space and do not require the detection of movementover a surface. Motion detecting mechanisms include gyroscopes thatdetect rotational movement of the pointing device and accelerometersthat detect linear movement. The gyroscopes and accelerometers emitsignals that correspond to the movements of the pointing device and areused to control the movement of a cursor on the computer screen. Aproblem with existing three dimensional pointing devices is that if theuser naturally holds the device at an angle offset from horizontal, themovement of the pointing device results in a cursor movement that isoffset by roll angle, i.e., horizontal movement of the pointing deviceheld at a roll angle results in angled movement of the cursor on thecomputer screen.

Some pointing devices are able to provide roll compensation for thenatural hand position of the user. However, a problem with existing rollcompensated pointing devices is that they utilize a very complextrigonometric matrix algorithm which requires high powered processorsthat draw a significant amount of electrical power. Since the pointingdevice is preferably a cordless device, the portable batteries used tooperate the more powerful processor may require frequent recharging orreplacement.

What is needed is an improved pointing device that performs rollcompensation in a more energy efficient manner so that an inexpensivelow powered processor can be used and battery live can be substantiallyimproved.

SUMMARY OF THE INVENTION

The present invention is directed towards a three dimensional pointingdevice that uses a low powered processor to calculate an algebraic rollcompensation algorithm using data from accelerometers and rotationalsensors. The inventive pointing device is less expensive to produce andmuch more energy efficient than the prior art. The pointing device has atransverse X axis that extends across the width of the pointing device,a Y axis that extends along the center axis of the pointing device, anda vertical Z axis that extends up from the center of the pointingdevice. In order to detect movement, the pointing device includesaccelerometers which detect gravity and acceleration in the X, Y, and Zdirections and gyroscopes which measure the rotational velocity of thepointing device about the X axis in pitch and the Z axis in yaw.

The accelerometers and gyroscopes are coupled to a microprocessor thatconverts the accelerometer and gyroscope signals into roll compensatedcursor control signals that are used to move a cursor on a displayscreen that is coupled to an electronic device. The pointing device canalso include one or more buttons and a scroll wheel which can also beused to interact with a software user interface. The pointing device canhave a transmitter system so the pointing device output signals can betransmitted to an electronic device through a wireless interface such asradio frequency or infrared optical signals. The user can use thepointing device to control software by moving the cursor to a targetlocation on the computer screen by moving the inventive pointing devicevertically and horizontally in a three dimensional space. The user canthen actuate controls on the visual display by clicking a button on thepointing device or rolling the scroll wheel.

If the pointing device is held stationary in a purely horizontalorientation, the vertical Z direction accelerometer would sense all ofthe gravitational force and the horizontal X and Y directionaccelerometers would not detect any gravitational force. However, sincethe pointing device is generally held by the user with some roll,portions of the gravitational force are detected by the X, Y and Zdirection accelerometers. To perform roll compensation, the pointingdevice dynamically detects the natural roll of the user's hand positionbased upon the X, Y and Z direction accelerometers signals andcontinuously updates the roll adjusted cursor control output signals.The roll correction factors Xcomp and Ycomp for horizontal and verticalmovements of the inventive pointing device are represented by thealgebraic algorithms:

X _(comp) =[A _(z) *R _(x) +A _(x) *R _(z) ]/A _(XZ)

Y _(comp) =[A _(x) *R _(x) −A _(z) *R _(z) ]/A _(XZ)

Where, A_(x) is the acceleration in the X direction and A_(Z) is theacceleration in the Z. A_(XZ) is the vector sum of A_(X) and A_(Z),solved by the equation, A_(XZ)=[A_(X) ² +A _(Z) ²]^(1/2) where Rx is therotational pitch velocity about the X axis and Rz is the rotational yawvelocity about the Z axis. Because the system dynamically detects roll,the inventive system continuously updates the roll compensation andautomatically adjusts to the hand roll of any user.

In embodiments of the inventive pointing device, additional calculationsare performed to provide compensation to the cursor movement X_(comp)and Y_(comp) for the pitch movement of the pointing device, user inducedacceleration, and variations in the temperature of the pointing device.As the pointing device is rotated in pitch, the Z axis gyroscope isangled away from a vertical orientation. This decreases the detection ofrotational velocity about the Z axis and reduces the X_(comp) value. Inan embodiment, the pointing device detects the pitch angle and increasesthe correction factors X_(comp) to compensate for the pitch angle.

User induced acceleration is caused by the offset positions of theaccelerometers from the center of rotation of the pointing device. Asthe user moves the pointing device, the accelerometers detect rotationalmovement of the pointing device. In an embodiment, the system calculatesthe rotational acceleration at the accelerometers and adjusts theaccelerometer output signals to compensate for the rotationalacceleration. In another embodiment, the system calculates thecentripetal acceleration at the accelerometers and adjusts theaccelerometer signals accordingly. By removing the user inducedrotational accelerations, the gravitational component of theaccelerometer signals can be isolated to accurately detect the roll ofthe pointing device.

Temperature compensation may be required where motion sensor outputs arealtered by variations in temperature. Temperature compensation isperformed by detecting changes in the temperature of the pointing deviceand applying a corrective factor to the motion sensor signals if achange in temperature is detected. In an embodiment, the pointing deviceincludes a temperature transducer that periodically detects thetemperature. If a substantial change in temperature is detected,temperature correction factors are applied to the rotational sensorsoutputs.

Since the roll correction and other compensation equations use verysimple algebraic algorithms, a basic processor that requires very littleelectrical energy can be used in the inventive pointing device. In anembodiment, the processor is a 16 bit RISC (Reduced Instruction SetComputer) processor that operates at about 4 MHz. Under these operatingconditions, the batteries used to power the processor of the inventivepointing device may last for several months of service. This is asignificant improvement over a pointing device that uses a trigonometryor matrix based roll compensating algorithm that requires a morepowerful processor operating at 12-16 MHz and consuming much moreenergy.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 illustrates a pointing device in an X, Y, Z coordinate system;

FIG. 2 illustrates a block diagram of the inventive pointing device;

FIG. 3 illustrates a pointing device used with an electronic devicehaving a visual display;

FIG. 4 illustrates a pointing device that does not have rollcompensation and a visual display;

FIG. 5 illustrates a pointing device at a roll angle with accelerationsignals AX and AZ graphically illustrated;

FIG. 6 illustrates a pointing device at a roll angle with rotationalvelocity signals RX and RZ graphically illustrated; and

FIG. 7 illustrates a cross section top view of the pointing device.

DETAILED DESCRIPTION

With reference to FIG. 1, an embodiment of a hand held motion sensingpointing device 101 is illustrated. The pointing device 101 moves withina three dimensional Cartesian coordinate system defined by the X, Y andZ axes which are perpendicular to each other. The center point of the X,Y and Z coordinate system is the center of rotation of the pointingdevice 101. The X axis 105 extends across the width of the pointingdevice 101, the Y axis 107 extending along the center axis and the Zaxis 109 extending up from the center of the pointing device 101. Theframe of reference for the pointing device 101 is known as the “bodyframe of reference.”

The pointing device 101 may include X, Y and Z direction accelerometers111, 112, 113 that are each mounted orthogonal to each other and detectacceleration and gravity in the X, Y and Z directions. The X, Y and Zdirection accelerometers output the acceleration values, AX, AY and AZthat correspond to each directional component of acceleration for thepointing device 101. The total acceleration is the vector sum AXYZ ofAX, AY and AZ, which is represented by the equation AXYZ=[AX2+AY2+AZ2]½.

The pointing device 101 also includes an X axis gyroscope 115 and Z axisgyroscope 117 that measure the rotational velocity. The X axis gyroscope115 detects the rotational velocity of the pointing device 101 in pitchabout the X axis 105 and a Z axis gyroscope 117 detects the rotationalvelocity yaw about the Z axis 109.

When a user moves the pointing device 101, the movement is generally acombination of translation detected by the accelerometers 111, 112, 113and the rotation is detected by the X axis and Z axis gyroscopes 115,1179. Because the hand, wrist and arm move about joints, verticalmovement of the pointing device will cause a rotational velocity aboutthe

X axis 105 and horizontal movement will cause rotational velocity aboutthe Z axis 109.

With reference to FIG. 2, a block diagram of the inventive pointingdevice components is illustrated. The X, Y and Z accelerometers 111,112, 113 and the X axis and Z axis rotation sensors 115, 117 are coupledto the processor 205. In addition to the acceleration and rotationsensors, a temperature sensor 217 may be coupled to the processor 205which is used to perform temperature signal corrections which will bediscussed later. Additional input devices may be coupled to theprocessor 205 including: mouse buttons 209 and a scroll wheel 211. Theprocessor 205 may also perform additional signal processing including,calibration, conversion, filtering etc. The processor 205 performs theroll compensation for the pointing device in a manner described belowand produces corrected cursor control signals that are forwarded withbutton/scroll wheel signals to a transmitter 215 that sends the signalsto a receiver coupled to an electronic device having a display.

With reference to FIG. 3, the pointing device 101 detects movement andtransmits cursor control signals to a receiver 151 that is coupled to anelectronic device 157 having a visual display 161. The visual display161 has an X and Y axis coordinate system which are used describe theposition and movement of the cursor 163 on the visual display 161 whichis known as the “user frame of reference.” Rotation of the pointingdevice 101 about the X axis 105 causes movement of the cursor 163 in thevertical Y direction of the visual display 161 and rotation about the Zaxis 109 causes horizontal X movement of the cursor 163. The speed ofthe cursor 163 movement is proportional to the magnitude of therotational velocities. Thus, when rotation of the pointing device 101 isstopped, the cursor 163 movement also stopped. In order to properlycoordinate the movements of the pointing device 101 and the cursor 163movement on the display 161 screen, a scaling process can be applied tothe cursor 163 movement signals. Although movement control signals for acursor 163 are described, in other embodiments, the inventive system andmethod can be used to control the movement of any other type of objector marker on any type of visual display.

As discussed in the background, people naturally hold objects at aslight roll angle about the Y axis rather than in a perfectly horizontalorientation. When a pointing device that does not provide rollcompensation is held at an angle, the accelerometers and gyroscopeswithin the pointing device are all offset by the roll angle relative tothe ground. This roll angle causes the outputs of the accelerometers andgyroscopes in the pointing device to be offset by the roll angle. Withreference to FIG. 4, if the pointing device 101 is held at a roll angleθA and moved in rotation about a horizontal axis, both the X axisgyroscope and the Z axis gyroscope will detect rotational velocities andthe cursor 163 will move at an angle in the X and Y directions ratherthan only in a Y vertical direction of the visual display 161.

In order to solve this problem, the inventive pointing device providesroll compensate so that the cursor will move based upon the movement ofthe pointing device regardless of the roll angle that the user holds thepointing device. With reference to FIG. 5, if the pointing device 101 isheld at a roll angle θA, the X and Z direction accelerometers will bothdetect some of the gravitational acceleration and emit accelerationsignals AX and AZ. By comparing the magnitudes of the accelerationsignals AX and AZ components, the roll angle θA of the pointing device101 can be calculated by the equation θA=arctan (AX/AZ). Another valuerequired for the roll compensation calculation is the vector sum of AXand AZ which is defined by the equation AXZ=[AX2=AZ2]½.

The roll angle θA of the pointing device also alters the rotationalvelocity outputs RX and RZ from the X axis and X axis gyroscopes. Theangle formed by magnitudes of the RX and RZ rotational components isrepresented by θR. Like roll angle θA, the rotational component angle θRis calculated by the equation θR=arctan (RX/RZ). The vector sum of RXand RZ rotation components is calculated by the equation,RXZ=(RX2+RZ2)½. With reference to FIG. 6, if the pointing device 101 ismoved in rotation diagonally, with equal rotational velocities up inpitch and counter clockwise in yaw, the pointing device should emit a RXrotation signal 621 and a RZ rotation signal 623 that are equal inmagnitude. However, the roll of the pointing device causes themagnitudes to be shifted which increases the RZ rotation 625 anddecreases the RX rotation 627 while the vector sum RXZ remains constant.

The basic roll compensation equations for Xcomp and Ycomp for theinventive pointing device are used to provide roll correct the X and Ymotion signals for a cursor on a visual display. The Xcomp and Ycompcorrection factors are based upon the vector sum of the rotationalvelocities, RXZ and the sin and cos of the sum of the angle of theacceleration components θ_(A) and angle of the rotational velocitycomponents θ_(R). The basic roll compensation equations are:

X _(comp) =R _(XZ)*sin(θ_(A)+θ_(R))

Y _(comp) =R _(XZ)*cos(θ_(A)+θ_(R))

While it is possible to calculate the sin and cos of (θ_(A)+θ_(R)),these trigonometry calculations are fairly difficult and requires asubstantial amount of processing power. Thus, a pointing deviceperforming this calculation requires a powerful microprocessor and alarger power supply to operate the microprocessor. In order to create amore efficient roll compensation pointing device, the sin and cosfunctions are simplified. The basic X_(comp) and Y_(comp) equations areconverted into the equivalent equations below:

sin (θ_(A)+θ_(R))=sin (θ_(A))*cos(θ_(R))+cos(θ_(A))*sin(θ_(R))

cos (θ_(A)+θ_(R))=cos (θ_(A))*cos(θ_(R))−sin(θ_(A))*sin (θ_(R))

With reference to FIG. 5, the sin and cos functions represent thegeometric relationship of a right triangle. In an example, theperpendicular sides of the right triangle are represented by themagnitudes of A_(X) and A_(Z). The length of the third side is A_(XZ)which equals [A_(X) ²+A_(Z) ²]^(1/2). The angle θ_(A) is between thesides A_(X) and A_(XZ). The sin and cos functions can be replaced by thetriangular ratios: sin θ_(A)=A_(Z)/A_(XZ), cos θ_(A)=A_(X)/A_(XZ), sinθ_(R)=R_(Z)/R_(XZ) and cos θ_(R)=R_(X)/R_(XZ). By substituting these sinand cos equivalents into the X_(comp) and Y_(comp) equations, thesimplified X_(comp) and Y_(comp) equations become:

X _(comp) =R _(XZ) *[A _(z) /A _(XZ) *R _(x) /R _(XZ) +A _(x) /A _(XZ)*R _(z) /R _(XZ)]

Y _(comp) =R _(XZ) *[A _(x) /A _(XZ) *R _(x) /R _(XZ) −A _(z) /A _(XZ)*R _(z) /R _(XZ)]

The equations are further simplified to:

X _(comp) =[A _(z) *R _(x) +A _(x) *R _(z) ]/A _(XZ)

Y _(comp) =[A _(x) *R _(x) −A _(z) *R _(z) ]/A _(XZ)

The simplified roll compensation algorithm provides several benefits. Byusing these purely algebraic algorithms for the roll compensation cursorsignals, X_(comp) and Y_(comp), are calculated with greatly reducedcomputational requirements and greatly reduces the energy required toperform the calculations. A low powered processor can be used whichconsumes very little electrical power and allows the pointing device tooperate for much longer periods of time with portable batteries,extending the battery life between recharging or replacement. The lowpowered processor is also a much less expensive component than higherpowered processors. Thus, the cost of production of the inventivepointing device can be significantly reduced. In sum, the inventivealgebraic based roll compensating pointing device has many benefits overa pointing device that uses a trigonometry based roll compensationalgorithm.

When the inventive pointing device is used, the algebraic X_(comp) andY_(comp) algorithms are constantly being calculated to respond to alldetected movement. In order to respond immediately to all intendedmovements, the motion sensors are constantly sampled and the values ofA_(X), A_(Z), R_(X) and R_(Z) are constantly updated. This sampling mayoccur when the pointing device is moving and stationary. In anembodiment, the accelerometers and rotation sensors are sampled aboutonce every 2 milliseconds. Because sensor reading error can occur, thesystem may include a mechanism for eliminating suspect data points. Inan embodiment, the system utilizes a sampling system in which fourreadings are obtained for each sensor and the high and low values arediscarded. The two middle sensor readings for A_(X), A_(Y), A_(Z), R_(X)and R_(Z) are then averaged and forwarded to the processor to calculateX_(comp) and Y_(comp). Since the X_(comp) and Y_(comp) calculations areperformed once for every four sensor readings, the report time for thesensors can be approximately every 8 milliseconds.

While the basic roll compensation correction system and method has beendescribed above, additional adjustment can be applied to the inventivepointing device to further correct potential errors in the X_(comp) andY_(comp) cursor control signals. In an embodiment, the) X_(comp) valueis corrected for the pitch of the pointing device. As the pointingdevice is rotated away from a horizontal orientation in pitch, the Zaxis rotational sensor is angled away from a vertical orientation anddetected Z axis rotational velocity R_(Z) is reduced. In order tocorrect the) X_(comp) value for pitch, the correction factorA_(XYZ)/A_(XZ) is applied. Where A_(xyz) =[A_(X) ²+A_(Y) ²+A_(Z)²]^(1/2) and A_(XZ)=[A_(X) ²+A_(Z) ²]^(1/2). Since A_(Y) is alignedhorizontally, the gravitational force is small and A_(XYZ)/A_(XZ)isapproximately 1.0 when the pointing device is horizontal. The A_(Y)signal will increase as the pointing device is rotated in pitch awayfrom horizontal so A_(XYZ)/A_(XZ) will also increase in value withincreased pitch. The pitch correction is applied to X_(comp) in theequations below:

X_(comp) =[A _(z) *R _(x) +A _(x) *R _(z) ]/A _(XZ) *[A _(XYZ) /A _(XZ)]

In contrast to the pitch correction for the Y_(comp), a correctionfactor is not required for Y_(comp). The X axis rotational sensor isaligned with the X axis and detects the pitch rotational velocity aboutthe X axis. Thus, Y_(comp) is not reduced when the pointing device ismoved in pitch. Since pitch does not alter Y_(comp) the pitch correctionis not applied to Y_(comp).

Another correction that can be applied to the pointing device iscorrection for user induced rotational acceleration that can be detectedby the accelerometers. Because the accelerometers are not locatedprecisely at the center of the pointing device, rotation of the pointingdevice causes user induced acceleration that is detected by theaccelerometers and results in errors in the accelerometer output signalsA_(X), A_(Y) and A_(Z). The user induced acceleration can includerotational acceleration and centripetal acceleration. By dynamicallydetecting and calculating these accelerations, the inventive system canremove the user induced accelerations by applying correction factors tooutput signals A_(X), A_(Y) and A_(Z). The gravitational force detectedby the accelerometers can then be isolated, resulting in a more accurateroll compensation calculation.

The rotational acceleration is detected by the accelerometers when thereis a change in the rotational velocity of the pointing device. Since theaccelerometers are not located at the center of rotation of the pointingdevice, any rotational acceleration will cause linear acceleration ofthe accelerometers based on the equation, A=ΔR/Δtime*1. The rotationalacceleration is ΔR/Δtime and can be determined by detecting thedifference in velocity between each rotational sensor sample anddividing this difference by the sample time. The fulcrum arm length l,can each be different for each of the X, Y and Z accelerometers and maybe represented by l_(X), l_(Y) and l_(Z) respectively. Since the X, Yand Z accelerometers only detect acceleration in one direction, thefulcrum arm lengths are the distances between the accelerometer and anaxis of rotation that is perpendicular to the detection direction.

With reference to FIG. 7, a top view of the pointing device 101 isshown. The linear acceleration of the X direction accelerometer 111 iscalculated by multiplying the rotational acceleration 321 of thepointing device 101 about the Z axis by the length lX 323 of the fulcrumarm. The fulcrum arm length lX 323 is equal to the perpendicular lengthfrom the Z axis 327 to a line 329 passing through the X directionaccelerometer 111 in the X direction. Note that the length lX 323 isperpendicular to both the line 329 and the Z axis 327. Similarly, thelinear acceleration of the Z direction accelerometer is the rotationalacceleration of the pointing device about the X axis multiplied by thefulcrum arm length lZ, which is the perpendicular length from the X axisto a line passing through the Z direction accelerometer in the Zdirection. In some cases, it can be difficult to determine the exactfulcrum arm lengths lX and lZ, and approximate lengths can be used tocalculate rotational acceleration. In an embodiment, the user inducedrotational acceleration is subtracted from the detected accelerationbased upon the equations:

A _(Xcorrected) =A _(X) −ΔR _(Z)/Δtime*l_(X)

A _(Zcorrected) =A _(Z) −ΔR _(X)/Δtime*l_(Z)

These calculations do not account for rotation about the Y axis becausethe inventive pointing device may not include a Y axis rotationalsensor. However, since R_(Y) is likely to be 0, then ΔR_(Y)/Δtime=0 andthe effects of Y axis rotational acceleration are negligible and notnecessary for the A_(Xcorrected) and A_(Zcorrected) calculations. It isalso possible to calculationA_(Ycorrected)=A_(X)−ΔR_(X)/Δtime*l_(Y1)−AR_(Z)/Δtime*l_(Y2), wherel_(Y1) is the perpendicular length from the X axis to a line passingthrough the Y direction accelerometer in the Y direction and l_(Y2) isthe perpendicular length from the Z axis to the line passing through theY direction accelerometer in the Y direction. Since the A_(Y) is onlyused in the pitch correction calculations and likely to be small inmagnitude, the A_(Ycorrected) calculation may not have a significantinfluence on the X_(comp) and Y_(comp) calculations and may not berequired.

The values of A_(X), A_(Y) and A_(Z) can also be altered by centripetalacceleration due to the offset of the accelerometers from the center ofrotation. The centripetal calculations are based around the equationA_(centripetal)=R²* radius. The value of “r” is the offset distance ofthe accelerometer about the axis of rotation. The centripetalacceleration can have two separate components. For Example, thecentripetal accelerations of the Y accelerometer can be caused byrotation R_(X) ² and R_(Z) ². The radius is the distance of theaccelerometer from the axis of rotation. In an embodiment, thecentripetal accelerations are calculated and used to correct theX_(comp) and Y_(comp) calculations. However, in general, the centripetalacceleration will be very small in comparison to the rotationalacceleration and can be omitted from the accelerometer correctionequations.

Another factor that can alter the output of the accelerometers androtations sensors is temperature. With reference to FIG. 2, a blockdiagram of the pointing device components is illustrated. In order tocompensate for the effects of temperature, the pointing device can havea temperature sensor 217 that provides a temperature signal to theprocessor 205. The detected temperature can be stored in memory 219 anda corresponding temperature correction factor can be applied to theoutputs of the rotational sensors, R_(X) and R_(Z). The processor 205can be configured to check the temperature periodically and if thetemperature has changed significantly from the stored temperature, a newtemperature correction factor can be applied to the rotation velocitysignals. In an embodiment, the temperature is checked every 5 minutesand a new temperature correction value is applied when the temperaturehas changed by more than 2 degree Centigrade.

In order to minimize the required temperature correction factors, theinventive motion detection system can be designed with paired componentsthat have an inverse reaction to temperature. For example, therotational velocity output signals from the rotational sensors mayincrease as the temperature increases. These rotational sensors may bepaired with regulators that decrease the rotational output readings withincreases in temperature. Since these paired components have an oppositeeffect on the signal, the net effect of temperature variations on theoutput rotational signals is reduced. While a temperature correction maystill be required, the influence of temperature changes is reduced whichmakes the system more stable.

The inventive pointing device may also automatically perform sensorcalibration. During the operation of the pointing device, the system maydetect when the accelerometers A_(X) and A_(Z) are producing a steadyoutput which indicates that the pointing device is stationary. Duringthis time, the outputs of the gyroscopes R_(X) and R_(Z) should be zerosince the pointing device is not in rotation. In an embodiment, theinventive pointing device may perform a calibration process to correctany rotational R_(X) and R_(Z) output errors. These correction offsetscan be stored in memory 219 and used to adjust the outputs of therotational sensors until the calibration process is performed again.

Since the correction factors are calculated using a very simplealgebraic algorithm, a basic processor that requires very littleelectrical energy can be used. In an embodiment, the inventive rollcompensation pointing device uses a 16 bit RISC (Reduced Instruction SetComputer) processor that operates at about 4 MHz. Commonly availableconsumer batteries such as one or more 1.5 Volt AA or AAA sizedbatteries can power the inventive pointing device for several months orlonger without recharging. This is a significant improvement over apointing device that uses a trigonometry based roll compensatingalgorithm that requires a more powerful processor operating at 12-16MHz, consumes much more energy and may require more frequent rechargingor replacement of batteries.

In other embodiments, the pointing device can include additional energysaving features. When the pointing device 101 is not being used, it canbe automatically switched off or placed in low energy consumptionstand-by mode. In an embodiment, the processor of the pointing devicemay detect that the accelerometers are emitting steady output signalsand/or the rotational sensors are emitting zero rotational velocitysignals. If these sensor outputs remain for an extended period of time,the processor may cause the pointing device to be shut off or go into asleep mode. In order to restart the pointing device, the user may haveto press a button on the pointing device or the pointing device maydetect movement. In response, the processor may apply power to thepointing device components. Since the accelerometers and gyroscopes onlyrequire about 250 milliseconds to become operational, the delay inresponse may be insignificant and unnoticed by the user.

Though the foregoing invention has been described in detail for purposesof clarity of understanding, it will be apparent that various changesand modifications may be practiced within the scope of the appendedclaims. It is therefore intended that the following appended claims beinterpreted as including all such alterations, permutations, andequivalents as fall within the spirit and scope of the presentinvention.

1-35. (canceled)
 36. A pointing device for controlling movement of acursor on an electronic display comprising: a first rotational sensorproviding a first rotational velocity signal R_(X) for rotationalmovement about a first axis; a second rotational sensor providing asecond rotational velocity signal R_(Z) for rotational movement about asecond axis; a first accelerometer providing a first acceleration signalA_(X) in response to a acceleration in a first direction along the firstaxis; a second accelerometer providing a second acceleration signalA_(Z) in response to a acceleration in a second direction along thesecond axis; a third accelerometer providing a third acceleration signalA_(Y) in response to a acceleration in a third direction along a thirdaxis, and a processing unit that calculates a first cursor movementsignal compensated for roll angle and a second cursor movement signalcompensated for pitch angle from R_(X), R_(Z), A_(X), A_(Y) and A_(Z).37. The pointing device of claim 36 wherein the processing unit does notuse any trigonometric computation in the calculation.
 38. The pointingdevice of claim 36 wherein the processing unit calculates a vector sumA_(XZ) of A_(X) and A_(Z), and calculates cursor movement signalscompensated for roll angle)(_(comp) and Y_(comp) with the equations:X _(comp) =[Az*R _(X) +Ax*R _(Z) ]/A _(XZ); andY _(comp) =[A _(X) *R _(X) −A _(Z) *R _(z) ]/A _(XZ)
 39. The pointingdevice of claim 36 wherein the processing unit calculates rollcompensated cursor movement signals X_(comp) and Y_(comp) , and signalX_(comp) is further compensated for pitch angle of the device asX_(comp corrected).
 40. The pointing device of claim 39 wherein theprocessing unit calculates X_(comp) corrected, the further compensationof roll compensated cursor movement signal X_(comp), for pitch angle ofthe device with the equation X_(comp corrected)=X_(comp)/cos(Pitch),where Pitch is the pitch angle of the device.
 41. The pointing device ofclaim 39 wherein the processing unit calculates a vector sum A_(XZ) ofA_(X) and A_(Z), a vector sum A_(XYZ) of A_(X), A_(Y) and A_(Z), andwherein X_(comp corrected), the further compensation of roll compensatedcursor movement signal X_(comp) for pitch angle of the device, iscalculated with the equationX_(comp corrected)=X_(comp)*[A_(XYZ)/A_(X)].
 42. The pointing device ofclaim 39 wherein the processing unit calculates a vector sum A_(XZ) ofA_(X) and A_(Z), a vector sum A_(XYZ) of A_(X), A_(Y) and A_(Z), androll and pitch compensated cursor movement signal X_(comp corrected) androll compensated cursor movement signal Y_(comp) with the equations:X _(comp corrected) =[Az*R _(X) +Ax*R _(Z) ]/A _(XZ) *[A _(XYZ) /A_(XZ)]; andY _(comp) =[A _(X) *R _(X) −A _(Z) *R _(Z) ]/A _(XZ).